Routing devices are components in a packet based networks for interconnecting and enabling communication between hosts devices located at different nodes of the network. A packet based network can have many intervening routing devices located at intermediate nodes of the network, and data packets that are transmitted by a source device or host at one node of a network may traverse many routing devices or “hops” till they are routed to an intended destination device or host located at another node of the network.
One of the functions of a routing device is to forward data packets received at an input port of the routing device to a succeeding next hop device connected to one of the outgoing ports of the routing device. In this manner, the data packets are transmitted from one intervening next hop routing device to another, till the data packets finally reach the next hop routing device that is typically closest to the destination device and can deliver the data packets to the destination device without having to route the packets to any other routing devices. When a data packet is received at an input port of a routing device, the routing device determines (typically via a routing table) the succeeding or next hop routing device from a plurality of next hop routing devices to which the data packet may be routed to reach the intended destination device.
Uneven distribution of data packets flows at one or more intermediate routing devices may cause some paths to saturate earlier than others thereby reducing the overall capacity of the network.